// 业务处理模块

const conn = require('./db.js')

module.exports = {
    // 测试 API 服务器能否正常被请求
    testAPI: (req,res) => {
        res.send('请求后台API接口成功！')
    },
    // 获取所有英雄列表
    getAllHero: (req,res) => {
        const sql = 'select * from heros'
        conn.query(sql, (err, result) => {
            // 如果读取数据失败，则返回一个失败的结果
            if(err) return res.send({status: 500, msg: err.message, data: null})
            // 如果获取数据成功，则直接返回成功的数据结果
            res.send({status: 200, msg: 'ok', data: result})
        })
    },
    // 增加英雄
    addHero: (req,res) => {
        // 1.获取到客户端提交到 服务器的 表单数据
        // 获取到客户端提交过来的英雄名称、性别即可
        // 获取服务器端的当前时间，当作 英雄的添加事件
        const hero = req.body
        // 得到当前的时间对象
        const dt = new Date()
    
        // 字符串，有一个新方法，叫做 padStart(长度，要填充的字符串)
        const y = dt.getFullYear()
        const m = (dt.getMonth() + 1).toString().padStart(2, '0')
        const d = dt.getDay().toString().padStart(2, '0')
    
        const hh = dt.getHours().toString().padStart(2, '0')
        const mm = dt.getMinutes().toString().padStart(2, '0')
        const ss = dt.getSeconds().toString().padStart(2, '0')
        // 补全英雄的添加时间
        hero.ctime = y + '-' + m + '-' + d + ' ' + hh + ':' + mm + ':' + ss
    
        // 调用 conn.query 实现 添加英雄
        const sql = 'insert into heros set ?'
        conn.query(sql, hero, (err,result) => {
            if (err) return res.send({ status: 500, msg: err.message, data: null})
            res.send({status: 200, msg: 'ok', data: null})
        })
    },
    // 根据Id获取英雄信息
    getHero: (req,res) => {
        // 1.获取到英雄的ID
        // 2.根据Id查询数据，并返回给客户端查询的结果
        const id = req.params.id
        const sql = 'select * from heros where id=?'
        conn.query(sql,id, (err,result) => {
            if(err) return res.send({ status: 500, msg: err.message, data: null })
            // res.send(result)
            res.send({ status: 200, msg: 'ok', data: result })
        })
    },
    // 根据Id更新英雄数据
    postUpDateHero: (req,res) => {
        const id = req.params.id
        const newInfo = req.body
        const sql = 'update heros set ? where id=?'
        conn.query(sql, [newInfo,id], (err,result) => {
            if (err) return res.send({ status: 500, msg: err.message, data: null})
            res.send({status: 200, msg: 'ok', data: result})
        })
    },
    // 根据Id删除英雄信息
    getUpDateHero: (req,res) => {
        const id = req.params.id
        const sql = 'update heros set isdel = 1 where id=?'
        conn.query(sql,id, (err,result) => {
            if (err) return res.send({status: 500, msg: err.message, data: null})
            res.send({status: 200, msg: 'ok', data: result})
        })
    }
}